package conditions;

import squares.Square;
/**
 * this interface contains methods to specify constraints for squares.
 * @author Gilles
 *
 */
public interface SearchCondition {
	/**
	 * 
	 * @param temperature
	 * 		the temperature you want to compare to
	 * @return
	 * 		true if the temperature is higher then or equal to the given temperature
	 * 		
	 */
	public abstract boolean TemperatureHigherOrEqualTo(double temperature);
	/**
	 * 
	 * @param temperature
	 * 		the temperature you want to compare to
	 * @return
	 * 		true if the temperature is higher then or equal to the given temperature
	 * 		
	 */
	public abstract boolean TemperatureLowerOrEqualTo(double temperature);
	/**
	 * 
	 * @param square
	 * 		the square you want to teleport to
	 * @return
	 * 		true if the given square is in the teleportable squares
	 * 		
	 */
	public abstract boolean TeleportTo(Square square);
	/**
	 * 
	 * @return
	 * 		true if this square is a rockSquare
	 */
	public abstract boolean isRockSquare();
	/**
	 * 
	 * @return
	 * 		true if this square is a transparentSquare
	 */
	public abstract boolean isTransparentSquare();
	/**
	 * 
	 * @param humidity
	 * 			the humidity you wan to compare to
	 * @return
	 * 		true if this humidity is lower then or equal to the given humidity
	 */
	public abstract boolean humidityLowerOrEqualTo(double humidity);
	/**
	 * 
	 * @param humidity
	 * 			the humidity you wan to compare to
	 * @return
	 * 		true if this humidity is higher then or equal to the given humidity
	 */
	public abstract boolean humidityHigherOrEqualTo(double humidity);
	

}
